home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Developer / SAT / Collision ƒ / sApple.p < prev    next >
Encoding:
Text File  |  1994-07-26  |  964 b   |  50 lines  |  [TEXT/PJMM]

  1. { Apple sprite for SATcollision }
  2.  
  3. unit sApple;
  4.  
  5. interface
  6.  
  7.     uses
  8.         SAT;
  9.  
  10.     var
  11.         theSound: Handle;
  12.         appleFace: FacePtr;
  13.  
  14.     procedure InitApple;
  15.     procedure SetupApple (me: SpritePtr);
  16.     procedure HandleApple (me: SpritePtr);
  17.  
  18. implementation
  19.  
  20.     procedure InitApple;
  21.     begin
  22.         theSound := SATGetSound(128);
  23.         appleFace := GetFace(132);
  24.     end;
  25.  
  26.     procedure SetupApple (me: SpritePtr);
  27.     begin
  28.         me^.speed.h := 1 + Rand(3);
  29.         me^.kind := -1;                    {Enemy kind}
  30.         me^.face := appleFace;
  31.         SetRect(me^.hotRect, 0, 0, 32, 32);
  32.         me^.task := @HandleApple;        {Must have a handling routine}
  33.     end;
  34.  
  35.     procedure HandleApple (me: SpritePtr);
  36.     begin
  37.         if me^.kind <> -1 then {Something hit us!}
  38.             begin
  39.                 SATSoundPlay(theSound, 1, false);
  40.                 me^.task := nil; {Go away}
  41.             end;
  42. {Move}
  43.         me^.position.h := me^.position.h + me^.speed.h;
  44.         if me^.position.h > gSAT.offSizeH - 16 then
  45.             me^.speed.h := -1 - Rand(3);
  46.         if me^.position.h < -16 then
  47.             me^.speed.h := 1 + Rand(3);
  48.     end;
  49.  
  50. end.